<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>闭包</title>
	</head>
	<body>
		<button onclick="add()">点击了 <span id="sp">0</span> </button>
		
		<script>
			//js作用域
			function a1(){
				var num1=100;
				function aa1(){
					var num2=666;
					console.log(num1);
				}
				aa1();
				//让作用域链外部的可以使用  内部的数据 而且避免全局污染  就是要闭包
				//console.log(num2);
			}
			a1();
			//闭包的形式
			//当一个嵌套内部的函数引用了外部的变量  就产生了闭包
			function aa(){
				var num=0;
				return function(){
					return num++;
				}
			}
			let c=aa();
			function add(){
				document.getElementById("sp").innerHTML=c();
			}
			//闭包2  将函数作为实参传递给另一个函数调用
			function ss(msg,time){
				setTimeout(function(){
					console.log(msg)
				},time);
			}
			ss("内容",1000);
			//闭包作用：延长数据存活的周期  让函数外部的可以操作函数内容部的数据
		//作用1：将云博客成功运行录屏
		//作用2：练习讲解内容
		
		</script>
		
	</body>
</html>